const { chunk, compact, sum, uniq } = require("./array.js");
const { randomBigInt } = require("./bigint.js");
const { randomUID, UUIDv7 } = require("./uid.js");
const { factory } = require("./factory.js");
const { inspectFmt, jsonFmt, shieldingSymbols } = require("./fmt.js");
const { clone } = require("./object.js");
const { Timestamp } = require("./timestamp.js");
const {
  isNil,
  isNumber,
  isObject,
  isDate,
  isRegExp,
  isString,
  isBigInt,
  isClassInstance,
  isEmpty,
  notNullOrUndefined,
} = require("./util.js");

const { err, ok } = require("./result/result.factory.js");
const { ErrResult, OkResult, Result } = require("./result/result.js");

const _ = {
  chunk,
  compact,
  sum,
  uniq,
  randomBigInt,
  randomUID,
  UUIDv7,
  factory,
  inspectFmt,
  jsonFmt,
  shieldingSymbols,
  clone,
  Timestamp,
  isNil,
  isNumber,
  isObject,
  isDate,
  isRegExp,
  isString,
  isBigInt,
  isEmpty,
  isClassInstance,
  notNullOrUndefined,
  ok,
  err,
  Result,
  ErrResult,
  OkResult,
};

module.exports = _;
module.exports._ = _;
module.exports.default = _;
